package org.example.codegenerate.modelext.WebVo.annotation.Column;



import org.example.codegenerate.modelext.WebVo.Enum.EnumPageFieldType;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
//@Target({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PageVo {
     //String fieldShowType() default "text";//":                        页面属性-控件类型      "text",datetime,list,umeditor,radio,sel_search,sel_depart,list_multi,image,markdown,list_multi,textarea,link_down,checkbox,file,popup,sel_tree

     /**
      *
      * @return 页面属性-控件类型      "text",datetime,list,umeditor,radio,sel_search,sel_depart,list_multi,image,markdown,list_multi,textarea,link_down,checkbox,file,popup,sel_tree
      */
     EnumPageFieldType fieldShowType() default EnumPageFieldType.文本框;

     /**
      *
      * @return 页面属性-       控件长度
      */

     int fieldLength() default 120;//"120,

     //String fieldExtendJson() default "";//null                      页面属性-       扩展参数
     String fieldDefaultValue() default "";//"",                     页面属性-       控件默认值  #{time} #{sysOrgCode} #{sysUserName} ${shop_order_num} #{date} {{ demoFieldDefVal_getAddress() }} 你好，我是xxx

     /**
      *
      * @return 页面属性-       是否查询
      */
     int isQuery() default 0;//0                                页面属性-       是否查询

     /**
      *
      * @return 1 代表 Y                      页面属性-表单显示
      */
     int isShowForm() default 1;//1 代表 Y                      页面属性-表单显示

     /**
      *
      * @return 1 代表 Y                       页面属性-      列表显示
      */
     int isShowList() default 1;//1 代表 Y                       页面属性-      列表显示

     /**
      *
      * @return 0，代表N                        页面属性-      是否只读
      */
     int isReadOnly() default 1;//0，代表N                        页面属性-      是否只读

     /**
      *
      * @return 注意，必须要小写//"single",group ；应该是2个选1个    页面属性-      查询类型，枚举，普通查询，范围查询
      */
     String queryMode() default "single";//注意，必须要小写//"single",group ；应该是2个选1个    页面属性-      查询类型，枚举，普通查询，范围查询
     //String converter() default "";//null                              页面属性-    自定义转换器

     /**
      *
      * @return 0 代表":"N",                        页面属性-     是否排序
      */
     String sortFlag() default "N";//0 代表":"N",                        页面属性-     是否排序

     /**
      *
      * @return ":"6"                             页面没有输入，但是行的方式隐藏了这个信息
      */
     int orderNum() default 0;//":"6"                             页面没有输入，但是行的方式隐藏了这个信息。
}
